As conventional methods for generating the pseudo-random number, which are used to encrypt digital data and so on, the following methods have been known.
(1) Linear Congruential Method
By solving the following linear recurrence relation, a random number X′ is obtained. This X′ is used as X at a next operation. Then, such operation is repeated to generate random numbers. In the relation, each of A, B and M is a constant, and X is an initial value (SEED) of the random number.(A×X+B)mod M=X′ (“mod” is an operator to obtain a remainder)
(2) Mixed Congruential Method
By employing the following formula with appropriate parameters A, P and Q, a random number A′ is obtained. This A′ is used as A at a next operation. Then, such operation is repeated to generate random numbers. Each of A, P and Q is arbitrary only if it has a necessary number of digits.A×P+Q=A′
(3) Middle Square Method
A parameter A appropriately selected as an initial value (SEED) is squared, and a necessary number of digits are taken out from generally middle parts of the resulting value as a random number and then also squared. Such operation is repeated.
(4) Mersenne Twister Method
Mersenne Twister Method is one of pseudo-random number generators developed by Makoto Matsumoto and Takuji Nishimura. (Refer to the document authored by M. Matsumoto and T. Nishimura, “Mersenne Twister: A 623-dimensionally equidistributed uniform pseudo-random number generator”, ACM Trans. on Modeling and Computer Simulation Vol. 8, No. 1, January pp. 3-30, 1998).
The obtained random number sequence has a very long period of 219937-1, so that as compared to the above-mentioned methods (1) to (3), it has more reliable and equal randomness.
In a case of encrypting data (a plain text) such as a message, a voice, an image or a moving image using a pseudo-random number, in a conventional method, a random number of which a amount is equal to or greater than that of the plain text was generated and then the plain text data was encrypted based on the generated random number.
However, this method has a limitation that it can be applied to only case where the amount of the target plain text to be encrypted is fixed and encrypting or decrypting can be done collectively. Because, for executing the above processing, there should be prepared a memory having an area for managing a target plain text to be encrypted, a pseudo-random number of which an amount is the same as that of the target plain text and an encrypted result, so that a required total memory capacity increases in proportion to the amount of the target plaintext. On the other hand, the memory has a maximum memory capacity secured according to an operating environment, so that in case the amount of the plain text exceeds a determined value, the processing cannot be done.
For example, in a case Linux is employed as an OS of 32 bits, memory area secured in a lump in an application process unit working on Linux is about 1 GB, so that if encrypting is processed within the area, a limit of the encrypting of the plaintext becomes about 500 MB at most. Actually, a processableamount of the plain text will be further limited because a further memory area should be secured for other processing.
As an OS consisted of 64 bits spreads widely in future, this situation may change. But, since there is a limit to the capacity of an installed physical memory, it will be unchanged that any kind of improvement technology is necessary.
For reason of the limitation based such operational environment, when the amount of the plain target text to be encrypted is not fixed or the amount is extremely large, for example, in a case of moving image data, the conventional lump encrypting is not effective. Further, regarding the moving image data, even though the compression technology is heightened, the resolution is higher and higher and thus the data capacity is increasing. Still more, in a case of delivering moving image data in the Internet in real time, such as a live relay broadcast, since the delivery of the moving image data and storage of the moving image data to a file are done approximately at the same time, a total data capacity cannot be fixed until the last end of the live relay broadcast, so that the conventional lump encrypting is difficult.
On the other hand, there is a strong request for delivery of such moving image data in encrypted format so as to inhibit the seeing and hearing except the contractant. Nevertheless, because of the above-mentioned limit of the memory capacity, it is hard to respond to such request by the method of the conventional lump encrypting.
Thus, an encryption method using a pseudo-random number for each frame as a unit of communication even in a case of real-time delivery (for example, refer to Japanese Patent Application Laid-open No. 2003-508975).